/**
 * 类型模块
 * 提供自定义类型定义
 * @module CesiumExtensions/type
 */

/**
 * 坐标点类型
 * @typedef {Object} Point
 * @property {number} x - X坐标
 * @property {number} y - Y坐标
 * @property {number} [z=0] - Z坐标
 */

/**
 * 经纬度坐标类型
 * @typedef {Object} LngLat
 * @property {number} lng - 经度
 * @property {number} lat - 纬度
 * @property {number} [height=0] - 高度
 */

/**
 * 矩形边界类型
 * @typedef {Object} Bounds
 * @property {number} west - 西边界经度
 * @property {number} south - 南边界纬度
 * @property {number} east - 东边界经度
 * @property {number} north - 北边界纬度
 */

/**
 * 图层配置选项类型
 * @typedef {Object} LayerOptions
 * @property {string} [name] - 图层名称
 * @property {boolean} [visible=true] - 是否可见
 * @property {number} [opacity=1] - 透明度
 * @property {boolean} [zIndex=0] - Z轴索引
 */

/**
 * 控件配置选项类型
 * @typedef {Object} ControlOptions
 * @property {string} [position='top-right'] - 控件位置
 * @property {boolean} [visible=true] - 是否可见
 */

/**
 * 颜色类型
 * @typedef {string|Array<number>} Color
 * @example
 * '#ff0000'
 * 'rgba(255, 0, 0, 0.5)'
 * [255, 0, 0, 0.5]
 */

// 导出类型定义（供文档生成使用）
export const TypeDefinitions = {
  Point: 'Point',
  LngLat: 'LngLat',
  Bounds: 'Bounds',
  LayerOptions: 'LayerOptions',
  ControlOptions: 'ControlOptions',
  Color: 'Color'
};

// 导出类型模块
export default TypeDefinitions;